Windows后台执行WSL2的SHELL命令 您所在的位置:网站首页 wsl 开机自启动 Windows后台执行WSL2的SHELL命令

Windows后台执行WSL2的SHELL命令

2024-07-12 23:02| 来源: 网络整理| 查看: 265

文章目录 概要整体架构流程技术名词解释技术细节1.具体操作1.注意事项1.环境变量2.生命周期 小结

概要

我们都知道WSL2现在性能已经能够达到生产力水平了,除了目前有些硬件支持的还不太好,比如USB没有原生支持。我有一个项目只有一台电脑并需要Windows和Linux联动(主要网络),有两种方案: 1、安装Linux+Wine 2、安装Windows+WSL2 综合考虑选择了后者,原因很简单Wine面对很多问题,而且是开源免费的东西,不像WSL2可是微软请来的技术专家做的,被誉为最好的Linux发行版。

整体架构流程

平常在使用WSL2的时候需要指定登录某一个分发版,目前支持的有Ubuntu、CentOS、Debian、OpenSUSE等。

当我们需要执行shell的时候都要先打开分发板的面板才能进入shell环境,就像你在Linux上打开一个命令行一样,你所有的操作都是在当前环境里面。

如果我不需要看到WSL2的命令行界面呢?毕竟我希望实现开机自启动,这个时候我们就不得不依赖wsl.exe这个程序了。

技术名词解释

* 后台执行

这里的后台执行并不是任务切换到后台,而是指不需要值守不需要人为操作UI的情况下,通过一系列命令完成WSL2的SHELL命令。

技术细节 1.具体操作

wsl.exe是运行在Windows上的一个程序,确切来讲是Windows10和Windows11,Windows7不支持。它是用来和WSL交互的程序或者WSL的管理程序。它有很多参数可供选择,不过我们今天只用到几种。

以Ubuntu-22.04为例,需要指定哪个发行版去执行命令。至于怎么查看自己的发行版,我以前的文章里都提过,这里再说一下。

wsl.exe --list -v NAME STATE VERSION * Ubuntu-20.04 Stopped 2 Ubuntu-22.04 Running 2 Ubuntu-18.04 Stopped 2 CentOS8 Stopped 2 CentOS7 Stopped 2

上面的NAME就是发行版的名字,STATE是运行状态,VERSION是版本。

执行命令也很简单,下面是打印网卡信息的命令,标准输出会打印网卡信息,和你登录进去打印的一模一样。

不一样的是下面的命令不需要你手动起一个Ubuntu的命令行页面,一切看起来都像是在后台执行的一样。

wsl -d Ubuntu-22.04 -u anold --exec /bin/bash -c ‘ifconfig’ 1.注意事项 1.环境变量

这里有一个需要注意的地方,你没有登录到发行版里面去,有些指令是不生效的比如:ll。这个命令是定义在.bashrc里面的alias。因为.bashrc没有被执行,所以配置在里面的ll不生效,当然还有很多命令也不生效,这里就不一一列举了。

2.生命周期

如果你的WSL配置策略是按需使用的话,你就需要注意了,如果你长时间不再使用WSL它就会被自动回收掉。

NAME STATE VERSION * Ubuntu-20.04 Stopped 2 Ubuntu-22.04 Stopped 2 Ubuntu-18.04 Stopped 2 CentOS8 Stopped 2 CentOS7 Stopped 2

确保你的服务一直处于活跃状态。

小结

蛮简单的,没有什么多余的操作。当然,wsl.exe还有很多功能等待被挖掘。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有